import React, { Component } from 'react';

class Child extends Component {
    state = {
        username: 'C罗',
        count: 0
    }
    render() {
        return (
            <div>
                子组件
                <p>props中count:{this.props.count}</p>
                <p>自身state中的count:{this.state.count}</p>
            </div>
        );
    };

    static getDerivedStateFromProps(props, state) {
        //getDerivedStateFromProps 会在调用 render 方法之前调用，并且在初始挂载及后续更新时都会被调用。
        // 它应返回一个对象来更新 state，如果返回 null 则不更新任何内容。
        // 特点: render 之前执行 挂载时,和更新时执行
        console.log('props', props);
        console.log('getDerivedStateFromProps');
        // 需求: 当自身的state中有props的属性,则不修改,否则修改?
        // 判断对象中是否有某一个属性
        // obj.hasOwnProperty(属性) 返回boolean  该方法只能判断自身属性,不能判断原型链属性,
        // 要想判断原型链和自身属性 可以使用 in   语法: 属性 in 对象 返回boolean
        // console.log(state.hasOwnProperty('abc')); 
        if (state.hasOwnProperty('count')) {
            return null
        } else {
            return props
        }

    }
}

export default Child;
